package com.czmh.etc.onlinepubsys.request.ue;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * Copyright (C), 2017-2021
 *
 * @Author: Chenzj
 * Date: 2021-07-15
 * FileName: SubmitOrderRequest
 * Description:
 */
@ApiModel("联合电子-4-2-6 订单提交-对接请求对象")
@Data
public class SubmitOrderRequest {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = "用户 ID", required = false)
    @JSONField(serialize = false)
    private String userId; //用户ID

    @ApiModelProperty(notes = "客户标识", required = false)
    private String userid;

    @ApiModelProperty(notes = "手机号-用户绑定的手机号机构必传", required = false)
    private String bind_tel;

    @ApiModelProperty(notes = "机构编码", required = false)
    private String appkey = "appKey";

    @ApiModelProperty(notes = "请求渠道 参考附件请求渠道", required = false)
    private String reqfrom = "74";

    @ApiModelProperty(notes = "产品Id- 01: 储值卡 02：联名记账卡 03：普通记账卡 04：单标签", required = false)
    private String product_id;

    @ApiModelProperty(notes = "签约渠道-参考附录签约渠道", required = false)
    private String sign_type;

    @ApiModelProperty(notes = "用户类型-参考附件", required = false)
    private String user_type;

    @ApiModelProperty(notes = "签约时间:yyyy-MM-dd HH:mm:ss", required = false)
    private String sign_time;

    @ApiModelProperty(notes = "签约状态", required = false)
    private String sign_status;

    @ApiModelProperty(notes = "是否套装 1套装 2单卡", required = false)
    private String spe_flag;

    @ApiModelProperty(notes = "是否充值型 01: 充值型 02：代扣型 注：单卡补标签储值卡传充值型记账卡传代扣型", required = false)
    private String recharege_flag;

    @ApiModelProperty(notes = "价格 非空，本次大规模发卡默认为0", required = false)
    private Integer price;

    @ApiModelProperty(notes = "综合服务平台的客户号", required = false)
    private String userno;

    @ApiModelProperty(notes = "地址 ID", required = false)
    private String address_id;

    @ApiModelProperty(notes = "收货地址省 whether_mail 为 02 邮寄必填，支持到自治区", required = false)
    private String addr_province;

    @ApiModelProperty(notes = "收货地址市 whether_mail 为 02 邮寄必填，支持到自治区", required = false)
    private String addr_city;

    @ApiModelProperty(notes = "收货详细地址 whether_mail 为 02 邮寄必填，支持到自治区", required = false)
    private String addr_district;

    @ApiModelProperty(notes = "收货地址省 whether_mail 为 02 邮寄必填，支持到自治区", required = false)
    private String addr_address;

    @ApiModelProperty(notes = "收货人 收货地址--收货人，whether_mail 为 02 邮寄必填", required = false)
    private String addr_consignee_name;

    @ApiModelProperty(notes = "收货手机号 收货地址--收货人，whether_mail 为 02 邮寄必填", required = false)
    private String addr_con_mobilephone;

    @ApiModelProperty(notes = "收货电话-收货地址--电话", required = false)
    private String addr_tel;

    @ApiModelProperty(notes = "收货电子邮箱 收货地址--电子邮箱", required = false)
    private String addr_email;

    @ApiModelProperty(notes = "信用审核标志位-sign_status=1 签约成功必填：0:通过;1:不通过;", required = false)
    private String credit_status;

    @ApiModelProperty(notes = "银行卡号-sign_status=1 签约成功必填：\n" +
            "卡片类型为联名记账卡时必\n" +
            "填；若是自行调用 4.3 部分银\n" +
            "行签约，此字段可不传", required = false)
    private String credit_card_no;

    @ApiModelProperty(notes = "银行账号-sign_status=1 签约成功必填：\n" +
            "卡片类型为联名记账卡时必\n" +
            "填(联名卡和账号和卡号一\n" +
            "致)；若是自行调用 4.3 部分银\n" +
            "行签约，此字段可不传", required = false)
    private String bank_account;

    @ApiModelProperty(notes = "银行编码-sign_status=1 签约成功必填：\n" +
            "卡片类型为联名记账卡时必\n" +
            "填（有综合服务平台录入）；\n" +
            "若是自行调用 4.3 部分银行签\n" +
            "约，此字段可不传", required = false)
    private String bank_code;

    @ApiModelProperty(notes = "银行账户户名-sign_status=1 签约成功必填：\n" +
            "卡片类型为联名记账卡时必\n" +
            "填（有综合服务平台录入）；\n" +
            "若是自行调用 4.3 部分银行签\n" +
            "约，此字段可不传", required = false)
    private String acc_name;

    @ApiModelProperty(notes = "账户联系人-sign_status=1 签约成功必填：\n" +
            "卡片类型为联名记账卡时必\n" +
            "填（有综合服务平台录入）；\n" +
            "若是自行调用 4.3 部分银行签\n" +
            "约，此字段可不传", required = false)
    private String contact_name;

    @ApiModelProperty(notes = "账户联系人手机-sign_status=1 签约成功必填：\n" +
            "卡片类型为联名记账卡时必\n" +
            "填（有综合服务平台录入）；\n" +
            "若是自行调用 4.3 部分银行签\n" +
            "约，此字段可不传", required = false)
    private String contact_phone;

    @ApiModelProperty(notes = "发票抬头 ID", required = false)
    private String invoice_title_id;

    @ApiModelProperty(notes = "发票用户类型", required = false)
    private String invo_user_type;

    @ApiModelProperty(notes = "姓名", required = false)
    private String invo_name;

    @ApiModelProperty(notes = "纳税人识别号", required = false)
    private String invo_tax_num;

    @ApiModelProperty(notes = "地址", required = false)
    private String invo_address;

    @ApiModelProperty(notes = "联系电话", required = false)
    private String invo_tel;

    @ApiModelProperty(notes = "银行名称", required = false)
    private String invo_bank;

    @ApiModelProperty(notes = "银行帐号", required = false)
    private String invo_bank_account;

    @ApiModelProperty(notes = "是否邮寄", required = false)
    private String whether_mail;

    @ApiModelProperty(notes = "粤通卡号 -- whether_mail=01 且sign_status=1 时必填", required = false)
    private String cardNo;

    @ApiModelProperty(notes = "标签号 -- whether_mail=01 且 sign_status=1 时必填", required = false)
    private String tagNo;

    @ApiModelProperty(notes = "行驶证地址", required = false)
    private String  address;

    @ApiModelProperty(notes = "客户表Id-4.2.1实名认证成功后返回的Id", required = false)
    private Long accountId;

    @ApiModelProperty(notes = "车辆表Id-4.2.3新增车辆信息成功后返回的Id", required = false)
    private Long carInfoId;

    @ApiModelProperty(notes = "发证日期-yyyyMMdd 或 yyyy-MM-dd", required = false)
    private String  issue_date;

    @ApiModelProperty(notes = "注册日期-yyyyMMdd 或 yyyy-MM-dd", required = false)
    private String  register_date;

    @ApiModelProperty(notes = "用户名称", required = false)
    private String organ;

    @ApiModelProperty(notes = "用户证件类型", required = false)
    private String idtype;

    @ApiModelProperty(notes = "用户证件号码", required = false)
    private String idnum;

    @ApiModelProperty(notes = "车牌号码", required = false)
    private String vehicle_plate;

    @ApiModelProperty(notes = "车牌颜色 参见附录（车牌颜", required = false)
    private String vehicle_color;

    @ApiModelProperty(notes = "车辆类型", required = false)
    private String car_type;

    @ApiModelProperty(notes = "车辆类型 0:客车 1:货车 2:专项作业车", required = false)
    private String vehicle_type;

    @ApiModelProperty(notes = "核定载人数", required = false)
    private Integer approved_count;

    @ApiModelProperty(notes = "轴数", required = false)
    private Integer vehicle_axles;

    @ApiModelProperty(notes = "轮数", required = false)
    private Integer vehicle_wheels;

    @ApiModelProperty(notes = "车型", required = false)
    private String vehicle_txtclass;

    @ApiModelProperty(notes = "车主名称", required = false)
    private String owner;

    @ApiModelProperty(notes = "使用性质", required = false)
    private String func_type;

    @ApiModelProperty(notes = "厂牌型号", required = false)
    private String factory_code;

    @ApiModelProperty(notes = "发动机号", required = false)
    private String engine_code;

    @ApiModelProperty(notes = "车辆识别号", required = false)
    private String vehicle_code;

    @ApiModelProperty(notes = "车辆长", required = false)
    private Integer vehicle_length;

    @ApiModelProperty(notes = "车辆宽", required = false)
    private Integer vehicle_width;

    @ApiModelProperty(notes = "车辆高", required = false)
    private Integer vehicle_height;

    @ApiModelProperty(notes = "车辆行驶证正面图片url", required = false)
    private String veh_license_pic_url1;

    @ApiModelProperty(notes = "车辆行驶证反面图片url", required = false)
    private String veh_license_pic_url2;

    @ApiModelProperty(notes = "车主证件正面图片url", required = false)
    private String owner_picurl1;

    @ApiModelProperty(notes = "车主证件反面图片url", required = false)
    private String owner_picurl2;

    @ApiModelProperty(notes = "车主证件类型-参考附件证件类型,车主名称和客户名称不一致时需传入", required = false)
    private String owner_id_type;

    @ApiModelProperty(notes = "总质量-车型为货车时必填,单位千克(kg)", required = false)
    private Integer total_mass;

    @ApiModelProperty(notes = "整备质量-车型为货车时必填,单位千克(kg)", required = false)
    private Integer maintenance_mass;

    @ApiModelProperty(notes = "核定载质量 单位是千克", required = false)
    private Integer vehicle_capacity;

    @ApiModelProperty(notes = "准牵引总质量-车型为牵引车时必填,单位千克(kg)", required = false)
    private Integer permitted_tow_weight;

}
